package com.lp.guoguo.runner;

import com.lp.guoguo.job.DemoJob;
import com.lp.guoguo.service.QuartzJobService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;

/**
 * 定时任务自动注册
 * 在项目启动时自动注册预设的定时任务
 */
@Component
public class QuartzJobRunner implements ApplicationRunner {
    
    private static final Logger log = LoggerFactory.getLogger(QuartzJobRunner.class);
    
    @Autowired
    private QuartzJobService quartzJobService;
    
    @Override
    public void run(ApplicationArguments args) {
        try {
            // 注册示例定时任务
            // 每30秒执行一次
            String cronExpression = "0/30 * * * * ?";
            
            // 检查任务是否已存在
            if (!quartzJobService.checkJobExists("demoJob", "demoGroup")) {
                log.info("系统启动，注册示例定时任务");
                quartzJobService.addJob(
                        DemoJob.class.getName(),  // 任务类名
                        "demoJob",                // 任务名称
                        "demoGroup",              // 任务组
                        cronExpression,           // cron表达式
                        null                      // 任务参数
                );
            }
        } catch (Exception e) {
            log.error("注册定时任务失败", e);
        }
    }
} 